home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD004b.dsk / IT.bas < prev    next >
BASIC Source File  |  2003-06-12  |  4KB  |  172 lines

  1. 1000  REM IT IT IT IT IT IT IT
  2. 1010  REM 
  3. 1020  REM ASSUMES 48K APPLE
  4. 1030  REM AND DOS 3.3
  5. 1040  REM 
  6. 1050  PRINT  CHR$(4)"MAXFILES3"
  7. 1060  HIMEM: 36864: REM $9000
  8. 1070  REM 
  9. 1080  REM DEFINITIONS
  10. 1090  REM 
  11. 1100  REM F$    DIRECTORY ENTRY
  12. 1110  REM TY$() FILE TYPE TABLE
  13. 1120  REM FL$() FILE NAME TABLE
  14. 1130  REM E     FILE TABLE INDEX
  15. 1140  REM T     DIR ENTRY OFFSET
  16. 1150  REM T3    FILE NAME OFFSET
  17. 1160  REM X     LOOP CONTROL
  18. 1170  REM F     FILE NAME CTR
  19. 1180  REM N$    SELECTION NUMBER
  20. 1190  REM N     MEMORY OFFSET
  21. 1200  REM H     MEMORY VALUE
  22. 1210  REM HI    DELETED ENTRY
  23. 1220  REM LO    UNUSED ENTRY
  24. 1230  REM RWTS  ASSY PGM PTR
  25. 1240  REM BUF   BUFFER PTR
  26. 1250  REM SP    STRING PTR
  27. 1260  REM DR$   DRIVE NUMBER
  28. 1270  REM S     SECTOR NUMBER
  29. 1280  REM CD$() FILE CMD TYPE
  30. 1290  REM 
  31. 1300  REM DECLARE F$ FIRST
  32. 1310  REM 
  33. 1320  LET F$ = "FILENAME"
  34. 1330  LET HI = 255
  35. 1340  LET LO = 0
  36. 1350  LET RWTS = 36864
  37. 1360  LET BUF = RWTS +256
  38. 1370  DIM FL$(107),TY(107)
  39. 1380  LET SP =  PEEK(105) +256 * PEEK(106)
  40. 1390  LET D$ =  CHR$(13) + CHR$(4)
  41. 1400  LET CD$(0) = "EXEC": REM TEXT
  42. 1410  REM 
  43. 1420  LET CR$(1) = "RUN": REM INTEGER
  44. 1430  LET CD$(2) = "RUN": REM APPLESOFT
  45. 1440  LET CD$(4) = "BRUN": REM BINARY
  46. 1450  REM 
  47. 1460  REM SET UP FOLLOWING CODE
  48. 1470  REM 
  49. 1480  REM RWTS   ORG $9000
  50. 1490  REM        PHA 
  51. 1500  REM        TXA 
  52. 1510  REM        PHA
  53. 1520  REM        TYA 
  54. 1530  REM        PHA
  55. 1540  REM        LDA #$90
  56. 1550  REM        LDY #$12 
  57. 1560  REM        JSR $03D9
  58. 1570  REM        PLA
  59. 1580  REM        TAY
  60. 1590  REM        PLA
  61. 1600  REM        TAX
  62. 1610  REM        PLA 
  63. 1620  REM        RTS 
  64. 1630  REM 
  65. 1640  REM        IOCB
  66. 1650  REM 
  67. 1660  REM IBTYPE HEX 01
  68. 1670  REM IBSLOT HEX 60
  69. 1680  REM IBDRVN HEX 00
  70. 1690  REM IBVOL  HEX 00
  71. 1700  REM IBTRK  HEX 00
  72. 1710  REM IBSECT HEX 00
  73. 1720  REM IBDCTP ADR DEVTPC
  74. 1730  REM IBBUFP EQU $9100
  75. 1740  REM IBRESV HEX 00
  76. 1750  REM IBCNT  HEX 00
  77. 1760  REM IBCMD  HEX 01
  78. 1770  REM IBSTAT HEX 00
  79. 1780  REM IBSMOD HEX 00
  80. 1790  REM IOBPSN HEX 60
  81. 1800  REM IOBPDN HEX 00
  82. 1810  REM 
  83. 1820  REM        DCT
  84. 1830  REM 
  85. 1840  REM DEVTPC HEX 00
  86. 1850  REM PPTC   HEX 01
  87. 1860  REM MONTC  HEX EFD8
  88. 1870  REM 
  89. 1880  DATA  72,138,72,152,72,169,144,160,18,32,217,3,104,168,104,170,104,96,1,96,0,0,0,0,35,144,0,145,0,0,1,0,0,96,0,0,1,239,216
  90. 1890  RESTORE 
  91. 1900  FOR N = 0 TO 38
  92. 1910  READ H
  93. 1920  POKE N +RWTS,H
  94. 1930  NEXT N
  95. 1940  REM 
  96. 1950  REM SET UP IOCB DATA
  97. 1960  REM 
  98. 1970  POKE SP +2,30
  99. 1980  POKE SP +4,145
  100. 1990  POKE RWTS +34, PEEK(47096)
  101. 2000  POKE RWTS +22,17
  102. 2010  TEXT 
  103. 2020  HOME 
  104. 2030  LET FL$(0) = "(EXIT PROGRAM)"
  105. 2040  LET FL$(1) = "(CATALOG OF DRIVE 1)
  106. 2050  LET FL$(2) = "(CATALOG OF DRIVE 2)
  107. 2060  LET DR$ = "1"
  108. 2070  LET S = 15:E = 2:DR =  VAL(DR$)
  109. 2080  HOME 
  110. 2090  VTAB 12
  111. 2100  HTAB 12
  112. 2110  PRINT "READING DRIVE ";DR$
  113. 2120  REM 43624 IS DOS DRIVE #
  114. 2130  POKE RWTS +20,DR
  115. 2140  POKE 43524,DR
  116. 2150  POKE RWTS +23,S
  117. 2160  CALL RWTS
  118. 2170  LET F = 0
  119. 2180  LET T = 11 +35 *F
  120. 2190  LET T3 = T +3
  121. 2200  POKE SP +3,T3
  122. 2210  IF  PEEK(BUF +T3) = LO  THEN 2320: REM ALL DONE
  123. 2220  IF  PEEK(BUF +T) = HI  THEN 2280: REM DELETED FILE
  124. 2230  LET E = E +1
  125. 2240  LET FL$(E) = F$
  126. 2250  LET TY =  PEEK(BUF +T +2)
  127. 2260  IF TY =  >127  THEN TY = TY -128
  128. 2270  LET TY(E) = TY
  129. 2280  LET F = F +1
  130. 2290  IF F <7  THEN 2180
  131. 2300  LET S = S -1
  132. 2310  IF S >0  THEN 2150
  133. 2320  HOME 
  134. 2330  INVERSE 
  135. 2340  PRINT "     CATALOG : DRIVE ";DR$;"   "
  136. 2350  INVERSE 
  137. 2360  PRINT "   "
  138. 2370  LET P = 0
  139. 2380  NORMAL 
  140. 2390  FOR X = 0 TO E
  141. 2400  INVERSE 
  142. 2410  IF X = 3  THEN  PRINT "   ";: NORMAL : PRINT "  --------------------": INVERSE 
  143. 2420  IF X <10  THEN  PRINT " ";
  144. 2430  IF X <100  THEN  PRINT " ";
  145. 2440  PRINT X;
  146. 2450  NORMAL 
  147. 2460  PRINT "  ";FL$(X)
  148. 2470  LET P = P +1
  149. 2480  IF P = 19  THEN  VTAB 24: INPUT "PRESS RETURN FOR MORE ";A$:P = 0: HOME 
  150. 2490  NEXT X
  151. 2500  INVERSE 
  152. 2510  PRINT "   "
  153. 2520  NORMAL 
  154. 2530  INVERSE 
  155. 2540  INPUT "    <-ENTER SELECTION    ";N$
  156. 2550  NORMAL 
  157. 2560  LET S =  VAL(N$)
  158. 2570  IF  STR$(S) < >N$  THEN 2320
  159. 2580  IF S <0  OR S >E  THEN 2320
  160. 2590  IF S = 1  THEN 2060
  161. 2600  IF S = 2  THEN DR$ = "2": GOTO 2070
  162. 2610  HIMEM: 38400
  163. 2620  IF S = 0  THEN  HOME : PRINT "THAT'S ALL FOLKS ...": END 
  164. 2630  HOME 
  165. 2640  HTAB 12
  166. 2650  VTAB 12
  167. 2660  PRINT CD$(TY(S));" ";FL$(S)
  168. 2670  ON TY(S) +2 GOTO 2680,2690,2700,2700,2680,2710
  169. 2680  PRINT "UNKNOWN TYPE OF FILE": END 
  170. 2690  PRINT D$;"EXEC ";FL$(S);",D";DR$: END 
  171. 2700  PRINT D$;"RUN ";FL$(S);",D";DR$: END 
  172. 2710  PRINT D$;"BRUN ";FL$(S);",D";DR$: END